package jp.sinmetal.trainer.form;

import java.util.Date;

import jp.sinmetal.trainer.util.DateUtil;

import org.seasar.framework.util.StringUtil;
import org.seasar.struts.annotation.IntegerType;
import org.seasar.struts.annotation.LongType;
import org.seasar.struts.annotation.Mask;
import org.seasar.struts.annotation.Required;



/**
 * 大会フォーム
 * @author sin
 *
 */
public class ConventionForm extends PagingForm {

	/**
	 * 大会ID
	 * @author sin
	 */
	@Required(target="show")
	@IntegerType
	public String conventionId = "";

	/**
	 * 大会名
	 * @author sin
	 */
	@Required(target="insert,update")
	public String conventionName = "";

	/**
	 * 主催者メンバーID
	 * @author sin
	 */
	@IntegerType
	public String memberId = "";

	/**
	 * 開催日
	 * @author sin
	 */
	@Mask(mask="^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$")
	public String conventionDay = "";

	/**
	 * 開催時刻
	 * @author sin
	 */
	@Mask(mask="^[0-9]{1,2}:[0-9]{1,2}$")
	public String conventionTime = "21:00";

	/**
	 * ハッシュタグ
	 * @author sin
	 */
	public String hashTag = "";

	/**
	 * 終了条件
	 * @author sin
	 */
	@IntegerType
	public String endState = "";

	/**
	 * 終了勝利回数
	 * @author sin
	 */
	@IntegerType
	public String endWinCount = "";

	/**
	 * 終了制限時間(分)
	 * @author sin
	 */
	@IntegerType
	public String endLimitTimeMin = "";

	/**
	 * 大会コメント
	 * @author sin
	 */
	public String conventionComment = "";

	/**
	 * 登録日時
	 * @author sin
	 */
	public String entryDate = "";

	/**
	 * バージョン
	 * @author sin
	 */
	@LongType
	public String version = "";

	/**
	 * 開催日時
	 * @author sin
	 *
	 * @return
	 */
	public String getConventionDate() {
		if (StringUtil.isEmpty(conventionDay)) {
			return "";
		}
		return String.format("%s %s", conventionDay, conventionTime);
	}

	/**
	 * 開催日時
	 * @author sin
	 *
	 * @param date
	 */
	public void setConventionDayAndTime(Date date) {
		if (date != null) {
			conventionDay = DateUtil.getDay(date);
			conventionTime = DateUtil.getTime(date);
		} else {
			conventionDay = "";
			conventionTime = "";
		}
	}
}